package com.hyxt.DTO.protocols;

/**
 * @Description: 是否ET08协议判断类
 * @author shenp
 */
public class ET08Case extends CommonCase implements ICase {
    @Override
    public boolean doCase(Object data) {
        byte[] bytes = (byte[]) data;
        // 正常源数据
        if (bytes[0] == '+') {
            // +ACK消息头
            if (bytes[1] == 'A' && bytes[2] == 'C' && bytes[3] == 'K'){
                return true;
            }
            // +RESP消息头
            if (bytes[1] == 'R' && bytes[2] == 'E' && bytes[3] == 'S' && bytes[4] == 'P'){
                return true;
            }
            // +BUFF消息头
            if (bytes[1] == 'B' && bytes[2] == 'U' && bytes[3] == 'F' && bytes[4] == 'F'){
                return true;
            }
            // 非源数据
        } else {
            return false;
        }
        return false;
    }

    @Override
    public byte getDataEnd() {
        return '$';
    }

    @Override
    public byte getDataHead() {
        return '+';
    }

    /**
     * @Description:获取唯一标识imei
     * @param data
     * @return
     */
    @Override
    public String getSign(byte[] data){
        String body = new String(data);
        String[] splitBody = body.split("\\,");
        //获取imei号
        String imei = splitBody[2];
        return imei;
    }

    public static void main(String[] args) {
        ET08Case et08Case = new ET08Case();
        byte[] bytes = "+ACK:GTCFG,188102,861074021860252,,0088,20140630064341,1675$".getBytes();
        et08Case.doCase(bytes);
    }
}
